-
Notifications
You must be signed in to change notification settings - Fork 56
Add UEFI support #176
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Add UEFI support #176
Conversation
notgull
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the PR! Two things:
raw_window_handleis intended to be a common types crate to be used by higher-level crates, rather than something that implements functionality on its own. So I would rather have it represent aHandleas aNonNull<T>since it's a raw pointer.- From a quick glance at the docs, it seems that
GraphicsOutputhas a framebuffer of its own. So I think it would be better ifGraphicsOutputwas a property of theWindowHandlerather than theDisplayHandle.
The framebuffer is only available when the Graphics Output Protocol implements a framebuffer mode. Otherwise, you have to use blit mode. |
|
Still, you draw to the |
|
I'm not sure what you mean. When drawing in UEFI, you use a temporary buffer which you render to. Then whenever you present, you copy from that buffer to the memory mapped one if it is available. Otherwise, you use the blit function in the protocol. If the memory mapped buffer is not available, that means the GPU just doesn't give the ability for direct screen access. I was wanting to use this with something like iced and have it like a compositor. Have multiple windows which get drawn and be able to manipulate them. At least in this crate and softbuffer, it shouldn't be anything special to make that possible. |
ebc69d4 to
3187a00
Compare
d736e88 to
a580921
Compare
a580921 to
e7ba947
Compare
| /// The UEFI Graphics Output Protocol handle. | ||
| /// | ||
| /// From the UEFI spec on <https://uefi.org>, can be found in versions since 2.0 as | ||
| /// `EFI_GRAPHICS_OUTPUT_PROTOCOL`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| /// `EFI_GRAPHICS_OUTPUT_PROTOCOL`. | |
| /// [`EFI_GRAPHICS_OUTPUT_PROTOCOL`]. | |
| /// | |
| /// [`EFI_GRAPHICS_OUTPUT_PROTOCOL`]: https://uefi.org/specs/UEFI/2.10/12_Protocols_Console_Support.html#efi-graphics-output-protocol |
Right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure, idk the format of rust's doc comment that much.
|
Wrt. having it on Unless there's something else in UEFI that more closely corresponds to a drawable surface? |
|
Re-reading the docs for
Which seems to indicate that perhaps display handles are better thought of as "connection handle" (they don't actually correspond to a physical "display"/monitor). Idk., the analogies break down somewhat at this point. Maybe the best approach is to consider how things will be used? Maybe you could expand on how you produce this handle for |
|
Yeah, the So you could interpret this as a
|
No description provided.